package com.threader.utils;

import java.io.File;
import java.util.ArrayList;
import java.util.Date;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;

/**
 * @author TChatterjee
 *
 */
public class ConstantRegistry 
{	
	public final static String 			UNDERSCORE = "_";
	public final static char 			UNDERSCORE_CHAR = '_';
	public final static String 			EMPTY_STRING = "";
	public final static String 			ALERT_STRING = "Alert";
	public final static String 			QUESTIONMARK = "?";
	public final static String 			AMPERSAND = "&";
	public final static String 			UTF_8 = "UTF-8";
	public final static Date			EPOCH = new Date(0);
	public final static Date			MAX_DATE = new Date(Long.MAX_VALUE);
	public final static Date			MIN_DATE = new Date(Long.MIN_VALUE);
	public static final String 			FORWARD_SLASH = "/";
    public static final String          BACKWARD_SLASH = "\\";    
	public static final char 			FORWARD_SLASH_CHAR = '/';
	public static final char 			BACKWARD_SLASH_CHAR = '\\';
	public static final char 			PIPE_CHAR = '|' ;	
	public static final String 			COLON = ":";
	public static final String 			COLON_SPACE = ": ";
    public static final String          COLON_SLASH = COLON + FORWARD_SLASH;    
	public static final String 			SEMICOLON = ";";	
	public static final String 			PIPE = "|" ;
	public static final String 			SINGLE_QUOTE = "'";
	public static final String 			NUMBER_SIGN = "#";
	public final static String 			ONE_SPACE = " ";
	public final static String 			TWO_SPACES = "  ";
	public final static String 			THREE_SPACES = "   ";
	public final static String 			OPEN_SQUARE_BRACKET = "[";	
	public final static String 			CLOSE_SQUARE_BRACKET = "]";	
	public final static String 			OPEN_CURLY_BRACKET = "{";	
	public final static String 			CLOSE_CURLY_BRACKET = "}";	
	public static final String 			NEWLINE = "\n";
    public static final String          TAB = "\t";    
	public static final String 			JSP_PAGE_CONTEXT = "jspContext";
	public static final String 			DEFAULT_PARAMETER_NAME = "defaultUnique";
	public static final String			WILDCARD	= "*";
	public static final String			COMMA	= ",";
	public static final String			PERIOD	= ".";
	public static final char			PERIOD_CHAR	= '.';
	public static final String 			EQUALS = "=";
	public static final String          PLUS = "+";
	public static final String          LINE_BREAK_ENCODER = "LB#";	
	public static final String          PARAGRAPH_TAG = "<p />";
	public static final String          DOLLAR = "$";
	public static final String          DOUBLE_QUOTE_HTML = "&quot;";
	
	public static final String[] 		statesNames = { "Dead", "Idle", "Worcking", "Searching Worck", 
		"Hour Breaking", "Dinnering", "Eating", "Sleeping", "Reading", "Writing", "Speaking"};

	public static final int DEAD = 0;
	public static final int IDLE = 1;
	public static final int WORCKING = 2;
	public static final int WORCKSEARCH = 3;
	public static final int HOURBREAK = 4;
	public static final int DINNER = 5;
	public static final int EATING = 6;
	public static final int SLEEP = 7;
	public static final int READ = 8;
	public static final int WRITE = 9;
	public static final int SPEAK = 10;

	public static final int worckDayLength = 8;
	
	
	/* sdk objects */
	public static final String 			NONE_STRING = "none";
	public static final String 			emptyString = "";
	public static final String[] 		EMPTY_STRING_ARRAY = new String[0];
	public static final String 			ZERO_STRING = "0";
	public static final String 			ONE_STRING = "1";	
	public static final java.util.Date 	NULL_UTIL_DATE = new java.util.Date(0);
	public static final java.sql.Date 	NULL_SQL_DATE = new java.sql.Date(NULL_UTIL_DATE.getTime());
	/* primitives */
	public static final int 			NULL_INT = 0;
	public static final double 			NULL_DOUBLE = 0.0;
	/* collectors */
	public static final ArrayList 		NULL_ARRAYLIST = new ArrayList(0);
	public static final Iterator 		NULL_ITERATOR = NULL_ARRAYLIST.iterator();
    public static final Map             EMPTY_MAP = new HashMap(0);
	public final static char 			NON_BREAKING_SPACE_CODE = '\u00A0';
	public final static String 			XML_NON_BREAKING_SPACE = "&#xA0;";	
	public final static String			TRUE_STRING 	= "true";
	public final static String			FALSE_STRING	 = "false";
	
	public static final String ATTRIBUTE_NAME_ATTACHMENT_ASSIGNED_RULE = "ruleOnFaxArrival";
	public static final String PARAMETER_NAME_ATTACHMENT_CHECKED_OUT_BY = "checkedOutBy";
	public static final String PARAMETER_NAME_ATTACHMENT_CATEGORY = "category";
	public static final String NOT_SPECIFIED = "notspecified";
	
	public static final String ATTACHMENT_ERROR_MSG = "attachmentErrorMsg";
	public static final String ATTACHMENT_EXCEPTION = "attachmentException";
    public static final String ONE_CARDINALITY = "one";
    public static final String MANY_CARDINALITY = "many";
	public static final String NON_BREAKING_SPACE = "&nbsp;";
	
	public static final String SIMPLE_TASK_PREFIX = "NewSimple";
	
	public static final String ANY_NAME = "any";
	public static final String BUNDLE_OWNER_GROUP = "owningGroup";	
	public static final String BUNDLE_OWNER_USER = "owningUser";
	public static final String TASK_NAME = "taskName";
	public final static String SCRIPT_LANGUAGE 					= "lang";	
   	public static final String LANGUAGE_PROPERTIES = "language";
   	public static final String LANGUAGE_CUSTOM_PROPERTIES = "language-custom";
   	public static final String ALL					= "All";
   	public static final String FILE_SEPARATOR		= File.separator;
  	public static final String GET_DISPLAY_VALUE	= "common.get.display.value";
   	public static final String SET_DISPLAY_VALUE	= "common.set.display.value";
  	public static final String COMPARE_DISPLAY_VALUE	    = "common.compare.display.value";
  	public static final String STATE_KEY_PREFIX = "state";
  	public static final String COUNTRY_KEY_PREFIX = "country";
  	public static final String DOT_SEPERATOR = ".";
  	public static final String CANADIAN_PROVINCE_STATE_KEY = "state.can.province";
  	
  	// Charting Related Constants  	
  	public static final String DATA_URL_PARAM_PREFIX = "D_";
  	public static final String EFFECT_3D = "Effect_3D";
  	public static final String LEGENDS = "Legends";
  	public static final String TOOLTIPS = "Tooltips";
  	public static final String CHART_TYPE = "ChartType";
  	public static final String CHART_WIDTH = "ChartWidth";
  	public static final String CHART_HEIGHT = "ChartHeight";
  	public static final String PIE_CHART = "PieChart";
  	public static final String BAR_CHART = "BarChart";
  	
  	public static final String SHORT_DATE_FORMAT = "SHORT";
  	public static final String LONG_DATE_FORMAT = "LONG";

  	// Search Related Properties
  	public static final String BUNDLEID = "bID";
  	public static final String PARAMETER_NAME = "pName";
  	public static final String PARAMETER_VALUE = "pValue";
  	public static final String PARAMETER_TYPE  = "pType";
  	public static final String PARAMETER_DISPLAY_VALUE = "pDisplayValue";
  	public static final String ATTACHMENT_TYPE  = "0";
  	public static final String METADATA_TYPE  = "1";
  	public static final String FILE_TYPE = "2";
  	public static final String STEMMING = "STEMMING";
  	public static final String MAX_SEARCH_FILTER_FALLOUT = "MAX_SEARCH_FILTER_FALLOUT";
  	//config property for attachment filetype|parser combination
  	public static final String ATTACHMENT_FILE_TYPE_PARSER = "ATTACHMENT_FILE_TYPE_PARSER";
  	
  	public static final String MODULE ="module";
	public static final String NAME = "name";
	public static final String DISPLAY = "display";
	public static final String LOCALESET = "LocaleSet";
	public static final String LOCALLIZEDSTR = "LocalizedString";
	public static final String ATTRIBUTE = "attribute";
	public static final String VALUE = "value";
	public static final String WORKFLOW = "workflow";

	// for the forms.
	public static final String FORM_PARAM_PREFIX = "D_386";
	
	// for the checkboxes.
	public static final String ON = "on";
	public static final String INFOCOMPREF = "infoComponentRef";
	public static final String COMPONENT = "component";
	public static final String TYPE = "type";
	public static final String REF = "ref";
	public static final String COMPONENTDEF = "componentDef";

	public static final String OVERRIDDEN_LANGUAGE_FILEPATH = "determine.config.default.language.filePath";
	
	public static final String CONVERT_PARAM = "convert";
	public static final String WORDTOPDF = "wordtopdf";
	public static final String HYPHEN = "-";
	
	public static final String MANAGE_TASK = "Manage";
	public static final String EXPORT_TYPES = "EXPORT_TYPES";
	public static final String EXPORT_ENABLED = "EXPORT_ENABLED";	
	
	public static final String IMPORT_GOING_ON = "importGoingOn";
	public static final String COPY_INCOMPLETE_NOT_ALLOWED = "wf.copy.not.permitted";
//Bundle type constants
	public static final String BUNDLE_CATEGORY_AMENDED_MASTER = "X";
	public static final String BUNDLE_CATEGORY_EFFECTIVE_VIEW_BEFORE_CALCULATING = "Y";
	public static final String BUNDLE_CATEGORY_MASTER = "M";
	public static final String BUNDLE_CATEGORY_AMENDMENT = "A";
	public static final String BUNDLE_CATEGORY_EFFECTIVE_VIEW = "E";
	public static final String BUNDLE_CATEGORY_SUB = "S";
	
	public static final String SSOTYPE_SAML="SAML";
	public static final String SSOTYPE_CUSTOM="Custom";

	public static final String REQ_STATE_KEY = "REQSTATE";
	public static final String REQ_NAVBEAN_KEY = "navbean";
   	
	public static final String ALL_COMPONENTS = "All_Components";
	public static final String REP_NONE_STRING = "None";
}
